/*
 * @Author: Yang qiuyou wangyi168359476@163.com
 * @Date: 2024-07-26 11:15:02
 * @LastEditors: qiulin 1746365080@qq.com
 * @LastEditTime: 2025-01-09 17:12:09
 * @FilePath: \SGFEM\DataStructure\FEM\Property\include\PSOLIDData.h
 * @Description: PSOLID 实体单元属性定义.
 *
 */

#pragma once

#include "DataStructure/Common/DataStructureNamespace.h"
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Input/Property/PropertyBase.h"
SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN
/// @brief 实体单元属性定义.
struct PSOLIDData : PropertyBase
{
    SG::DataStructure::Common::Id  m_mId  = 0;  ///< 材料属性
    SG::DataStructure::Common::Id  m_mCId = 0;  ///< 材料坐标系编号
    SG::DataStructure::Common::I64 m_in   = 0.0;///< 积分格式  //0 BUBBLE,2 TWO  ,3THREE
    SG::DataStructure::Common::I64 m_stress = 0.0;///< 应力      //GRID 0,GAUSS 1
    SG::DataStructure::Common::I64 m_iosp = 0.0;///< 积分方案  //REDUCE 0 ,FULL 1
        /**
         * 流体/结构/弹性元件标记
         * "FFLU" indicates a fluid element with frequency dependent rigid absorber properties
         * "PFLU" indicates a fluid element
         * "SMEC" indicates a structural element
         * "PORO" indicates an element of poroelastic medium
         * "PSLD" indicates an Actran structural solid-shell element
         */
        SG::DataStructure::Common::I8 m_fctn[4] = { 0 };

    SG::DataStructure::Common::Id m_domainId = 0;
};  // end namespace FEM

DECLSPEC bool operator== (const PSOLIDData &a, const PSOLIDData &b);

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE